package org.web.webdisplay.sdk.dto.query;

import java.util.*;
import lombok.Getter;
import lombok.Setter;
import org.web.base.domain.*;
import jakarta.validation.constraints.*;

@Setter
@Getter
public class QueryUserPageQueryInfoRequest extends ExtendQueryBase {
    /**
    * 圈定 'specifiedAttributeSet' 返回属性信息范围，指定的属性信息与列定义名称保持一致。
    */
    private static final Set<String> COLUMN_SET = new HashSet<>(Arrays.asList("user_page_query_info_id", "display_info_id", "user_id", "query_name", "query_info", "create_time", "update_time"));

    /**
    * 圈定 'specifiedAttributeSet' 返回属性信息范围，指定的属性信息与列定义名称保持一致。
    */
    private static final Set<String> SORT_COLUMN_SET = new HashSet<>(Arrays.asList("user_page_query_info_id", "display_info_id", "user_id", "query_name", "query_info", "create_time", "update_time"));

    @Override
    public Set<String> getColumnsSet() {
        return COLUMN_SET;
    }

    @Override
    public Set<String> getSortColumnsSet() {
        return SORT_COLUMN_SET;
    }

    /**
    * 根据 'userPageQueryInfoId' 精确查询.
    */
    private Integer userPageQueryInfoId;

    /**
    * 根据 'userPageQueryInfoIdSet' 范围查询.
    */
    private Set<Integer> userPageQueryInfoIdSet;

    /**
    * 根据 'displayInfoId' 精确查询.
    */
    private Integer displayInfoId;

    /**
    * 根据 'displayInfoIdSet' 范围查询.
    */
    private Set<Integer> displayInfoIdSet;

    /**
    * 根据 'userId' 精确查询.
    */
    private String userId;

    /**
    * 根据 'userIdSet' 范围查询.
    */
    private Set<String> userIdSet;

    /**
    * 根据 'queryName' 精确查询.
    */
    private String queryName;

    /**
    * 根据 'fuzzyQueryName' 模糊查询.
    */
    private String fuzzyQueryName;

    /**
    * 根据 'queryNameSet' 范围查询.
    */
    private Set<String> queryNameSet;

    /**
    * 设置大于 'createTime' 查询.
    */
    private Date moreThanCreateTime;

    /**
    * 设置小于 'createTime' 查询.
    */
    private Date lessThanCreateTime;

    /**
    * 设置大于等于 'createTime' 查询.
    */
    private Date equalAndMoreThanCreateTime;

    /**
    * 设置小于等于 'createTime' 查询.
    */
    private Date equalAndLessThanCreateTime;

    /**
    * 设置大于 'updateTime' 查询.
    */
    private Date moreThanUpdateTime;

    /**
    * 设置小于 'updateTime' 查询.
    */
    private Date lessThanUpdateTime;

    /**
    * 设置大于等于 'updateTime' 查询.
    */
    private Date equalAndMoreThanUpdateTime;

    /**
    * 设置小于等于 'updateTime' 查询.
    */
    private Date equalAndLessThanUpdateTime;


    @NotNull(message = "pageSize 不能为空")
    @Max(value = 200, message = "pageSize 不能大于200")
    public Integer getPageSize() {
        return super.getPageSize();
    }
}